home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / ole2.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  12.4 KB  |  359 lines

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (C) Microsoft Corporation, 1992-1996.
  5. //
  6. //  File:       OLE2.h
  7. //  Contents:   Main OLE2 header; Defines Linking and Emmebbeding interfaces, and API's.
  8. //              Also includes .h files for the compobj, and oleauto  subcomponents.
  9. //
  10. //----------------------------------------------------------------------------
  11. #ifndef _OLE2_H_
  12. #define _OLE2_H_
  13. #pragma option push -b
  14.  
  15.  
  16. // Set packing to 8
  17.  
  18. #include <pshpack8.h>
  19.  
  20.  
  21. // Make 100% sure WIN32 is defined
  22. #ifndef WIN32
  23. #define WIN32    100  // 100 == NT version 1.0
  24. #endif
  25.  
  26.  
  27. // SET to remove _export from interface definitions
  28.  
  29.  
  30.  
  31. #include <winerror.h>
  32.  
  33.  
  34.  
  35. #include <objbase.h>
  36.  
  37.  
  38. #include <oleauto.h>
  39.  
  40.  
  41. // View OBJECT Error Codes
  42.  
  43. #define E_DRAW                  VIEW_E_DRAW
  44.  
  45. // IDataObject Error Codes
  46. #define DATA_E_FORMATETC        DV_E_FORMATETC
  47.  
  48.  
  49.  
  50.  
  51.  
  52. // Common stuff gleamed from OLE.2,
  53.  
  54. /* verbs */
  55. #define OLEIVERB_PRIMARY            (0L)
  56. #define OLEIVERB_SHOW               (-1L)
  57. #define OLEIVERB_OPEN               (-2L)
  58. #define OLEIVERB_HIDE               (-3L)
  59. #define OLEIVERB_UIACTIVATE         (-4L)
  60. #define OLEIVERB_INPLACEACTIVATE    (-5L)
  61. #define OLEIVERB_DISCARDUNDOSTATE   (-6L)
  62.  
  63. // for OleCreateEmbeddingHelper flags; roles in low word; options in high word
  64. #define EMBDHLP_INPROC_HANDLER   0x0000L
  65. #define EMBDHLP_INPROC_SERVER    0x0001L
  66. #define EMBDHLP_CREATENOW    0x00000000L
  67. #define EMBDHLP_DELAYCREATE  0x00010000L
  68.  
  69. /* extended create function flags */
  70. #define OLECREATE_LEAVERUNNING    0x00000001
  71.  
  72. /* pull in the MIDL generated header */
  73.  
  74.  
  75. #include <oleidl.h>
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83. /****** DV APIs ***********************************************************/
  84.  
  85.  
  86. WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER FAR* ppDAHolder);
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94. /****** OLE API Prototypes ************************************************/
  95.  
  96. WINOLEAPI_(DWORD) OleBuildVersion( VOID );
  97.  
  98. /* helper functions */
  99. WINOLEAPI ReadClassStg(LPSTORAGE pStg, CLSID FAR* pclsid);
  100. WINOLEAPI WriteClassStg(LPSTORAGE pStg, REFCLSID rclsid);
  101. WINOLEAPI ReadClassStm(LPSTREAM pStm, CLSID FAR* pclsid);
  102. WINOLEAPI WriteClassStm(LPSTREAM pStm, REFCLSID rclsid);
  103. WINOLEAPI WriteFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType);
  104. WINOLEAPI ReadFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT FAR* pcf, LPOLESTR FAR* lplpszUserType);
  105.  
  106.  
  107. /* init/term */
  108.  
  109. WINOLEAPI OleInitialize(LPVOID pvReserved);
  110. WINOLEAPI_(void) OleUninitialize(void);
  111.  
  112.  
  113. /* APIs to query whether (Embedded/Linked) object can be created from
  114.    the data object */
  115.  
  116. WINOLEAPI  OleQueryLinkFromData(LPDATAOBJECT pSrcDataObject);
  117. WINOLEAPI  OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject);
  118.  
  119.  
  120. /* Object creation APIs */
  121.  
  122. WINOLEAPI  OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt,
  123.                 LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
  124.                 LPSTORAGE pStg, LPVOID FAR* ppvObj);
  125.  
  126. WINOLEAPI  OleCreateEx(REFCLSID rclsid, REFIID riid, DWORD dwFlags,
  127.                 DWORD renderopt, ULONG cFormats, DWORD* rgAdvf,
  128.                 LPFORMATETC rgFormatEtc, IAdviseSink FAR* lpAdviseSink,
  129.                 DWORD FAR* rgdwConnection, LPOLECLIENTSITE pClientSite,
  130.                 LPSTORAGE pStg, LPVOID FAR* ppvObj);
  131.  
  132. WINOLEAPI  OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
  133.                 DWORD renderopt, LPFORMATETC pFormatEtc,
  134.                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
  135.                 LPVOID FAR* ppvObj);
  136.  
  137. WINOLEAPI  OleCreateFromDataEx(LPDATAOBJECT pSrcDataObj, REFIID riid,
  138.                 DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf,
  139.                 LPFORMATETC rgFormatEtc, IAdviseSink FAR* lpAdviseSink,
  140.                 DWORD FAR* rgdwConnection, LPOLECLIENTSITE pClientSite,
  141.                 LPSTORAGE pStg, LPVOID FAR* ppvObj);
  142.  
  143. WINOLEAPI  OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
  144.                 DWORD renderopt, LPFORMATETC pFormatEtc,
  145.                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
  146.                 LPVOID FAR* ppvObj);
  147.  
  148. WINOLEAPI  OleCreateLinkFromDataEx(LPDATAOBJECT pSrcDataObj, REFIID riid,
  149.                 DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf,
  150.                 LPFORMATETC rgFormatEtc, IAdviseSink FAR* lpAdviseSink,
  151.                 DWORD FAR* rgdwConnection, LPOLECLIENTSITE pClientSite,
  152.                 LPSTORAGE pStg, LPVOID FAR* ppvObj);
  153.  
  154. WINOLEAPI  OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
  155.                 DWORD renderopt, LPFORMATETC pFormatEtc,
  156.                 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
  157.                 LPVOID FAR* ppvObj);
  158.  
  159.  
  160. WINOLEAPI  OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid,
  161.             DWORD renderopt, LPFORMATETC lpFormatEtc,
  162.             LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
  163.  
  164. WINOLEAPI  OleCreateLinkEx(LPMONIKER pmkLinkSrc, REFIID riid,
  165.             DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf,
  166.             LPFORMATETC rgFormatEtc, IAdviseSink FAR* lpAdviseSink,
  167.             DWORD FAR* rgdwConnection, LPOLECLIENTSITE pClientSite,
  168.             LPSTORAGE pStg, LPVOID FAR* ppvObj);
  169.  
  170. WINOLEAPI  OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid,
  171.             DWORD renderopt, LPFORMATETC lpFormatEtc,
  172.             LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
  173.  
  174. WINOLEAPI  OleCreateLinkToFileEx(LPCOLESTR lpszFileName, REFIID riid,
  175.             DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf,
  176.             LPFORMATETC rgFormatEtc, IAdviseSink FAR* lpAdviseSink,
  177.             DWORD FAR* rgdwConnection, LPOLECLIENTSITE pClientSite,
  178.             LPSTORAGE pStg, LPVOID FAR* ppvObj);
  179.  
  180. WINOLEAPI  OleCreateFromFile(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid,
  181.             DWORD renderopt, LPFORMATETC lpFormatEtc,
  182.             LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID FAR* ppvObj);
  183.  
  184. WINOLEAPI  OleCreateFromFileEx(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid,
  185.             DWORD dwFlags, DWORD renderopt, ULONG cFormats, DWORD* rgAdvf,
  186.             LPFORMATETC rgFormatEtc, IAdviseSink FAR* lpAdviseSink,
  187.             DWORD FAR* rgdwConnection, LPOLECLIENTSITE pClientSite,
  188.             LPSTORAGE pStg, LPVOID FAR* ppvObj);
  189.  
  190. WINOLEAPI  OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite,
  191.             LPVOID FAR* ppvObj);
  192.  
  193. WINOLEAPI  OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad);
  194.  
  195. WINOLEAPI  OleLoadFromStream( LPSTREAM pStm, REFIID iidInterface, LPVOID FAR* ppvObj);
  196. WINOLEAPI  OleSaveToStream( LPPERSISTSTREAM pPStm, LPSTREAM pStm );
  197.  
  198.  
  199. WINOLEAPI  OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained);
  200. WINOLEAPI  OleNoteObjectVisible(LPUNKNOWN pUnknown, BOOL fVisible);
  201.  
  202.  
  203. /* Drag/Drop APIs */
  204.  
  205. WINOLEAPI  RegisterDragDrop(HWND hwnd, LPDROPTARGET pDropTarget);
  206. WINOLEAPI  RevokeDragDrop(HWND hwnd);
  207. WINOLEAPI  DoDragDrop(LPDATAOBJECT pDataObj, LPDROPSOURCE pDropSource,
  208.             DWORD dwOKEffects, LPDWORD pdwEffect);
  209.  
  210. /* Clipboard APIs */
  211.  
  212. WINOLEAPI  OleSetClipboard(LPDATAOBJECT pDataObj);
  213. WINOLEAPI  OleGetClipboard(LPDATAOBJECT FAR* ppDataObj);
  214. WINOLEAPI  OleFlushClipboard(void);
  215. WINOLEAPI  OleIsCurrentClipboard(LPDATAOBJECT pDataObj);
  216.  
  217.  
  218. /* InPlace Editing APIs */
  219.  
  220. WINOLEAPI_(HOLEMENU)   OleCreateMenuDescriptor (HMENU hmenuCombined,
  221.                                 LPOLEMENUGROUPWIDTHS lpMenuWidths);
  222. WINOLEAPI              OleSetMenuDescriptor (HOLEMENU holemenu, HWND hwndFrame,
  223.                                 HWND hwndActiveObject,
  224.                                 LPOLEINPLACEFRAME lpFrame,
  225.                                 LPOLEINPLACEACTIVEOBJECT lpActiveObj);
  226. WINOLEAPI              OleDestroyMenuDescriptor (HOLEMENU holemenu);
  227.  
  228. WINOLEAPI              OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame,
  229.                             LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg);
  230.  
  231.  
  232. /* Helper APIs */
  233. WINOLEAPI_(HANDLE) OleDuplicateData (HANDLE hSrc, CLIPFORMAT cfFormat,
  234.                         UINT uiFlags);
  235.  
  236. WINOLEAPI          OleDraw (LPUNKNOWN pUnknown, DWORD dwAspect, HDC hdcDraw,
  237.                     LPCRECT lprcBounds);
  238.  
  239. WINOLEAPI          OleRun(LPUNKNOWN pUnknown);
  240. WINOLEAPI_(BOOL)   OleIsRunning(LPOLEOBJECT pObject);
  241. WINOLEAPI          OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses);
  242. WINOLEAPI_(void)   ReleaseStgMedium(LPSTGMEDIUM);
  243. WINOLEAPI          CreateOleAdviseHolder(LPOLEADVISEHOLDER FAR* ppOAHolder);
  244.  
  245. WINOLEAPI          OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter,
  246.                     REFIID riid, LPVOID FAR* lplpObj);
  247.  
  248. WINOLEAPI          OleCreateEmbeddingHelper(REFCLSID clsid, LPUNKNOWN pUnkOuter,
  249.                     DWORD flags, LPCLASSFACTORY pCF,
  250.                                         REFIID riid, LPVOID FAR* lplpObj);
  251.  
  252. WINOLEAPI_(BOOL)   IsAccelerator(HACCEL hAccel, int cAccelEntries, LPMSG lpMsg,
  253.                                         WORD FAR* lpwCmd);
  254. /* Icon extraction Helper APIs */
  255.  
  256. WINOLEAPI_(HGLOBAL) OleGetIconOfFile(LPOLESTR lpszPath, BOOL fUseFileAsLabel);
  257.  
  258. WINOLEAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID rclsid,     LPOLESTR lpszLabel,
  259.                                         BOOL fUseTypeAsLabel);
  260.  
  261. WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON hIcon, LPOLESTR lpszLabel,
  262.                                         LPOLESTR lpszSourceFile, UINT iIconIndex);
  263.  
  264.  
  265.  
  266. /* Registration Database Helper APIs */
  267.  
  268. WINOLEAPI                  OleRegGetUserType (REFCLSID clsid, DWORD dwFormOfType,
  269.                                         LPOLESTR FAR* pszUserType);
  270.  
  271. WINOLEAPI                  OleRegGetMiscStatus     (REFCLSID clsid, DWORD dwAspect,
  272.                                         DWORD FAR* pdwStatus);
  273.  
  274. WINOLEAPI                  OleRegEnumFormatEtc     (REFCLSID clsid, DWORD dwDirection,
  275.                                         LPENUMFORMATETC FAR* ppenum);
  276.  
  277. WINOLEAPI                  OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB FAR* ppenum);
  278.  
  279.  
  280.  
  281.  
  282.  
  283. /* OLE 1.0 conversion APIS */
  284.  
  285. /***** OLE 1.0 OLESTREAM declarations *************************************/
  286.  
  287. typedef struct _OLESTREAM FAR*  LPOLESTREAM;
  288.  
  289. typedef struct _OLESTREAMVTBL
  290. {
  291.     DWORD (CALLBACK* Get)(LPOLESTREAM, void FAR*, DWORD);
  292.     DWORD (CALLBACK* Put)(LPOLESTREAM, const void FAR*, DWORD);
  293. } OLESTREAMVTBL;
  294. typedef  OLESTREAMVTBL FAR*  LPOLESTREAMVTBL;
  295.  
  296. typedef struct _OLESTREAM
  297. {
  298.     LPOLESTREAMVTBL lpstbl;
  299. } OLESTREAM;
  300.  
  301.  
  302. WINOLEAPI OleConvertOLESTREAMToIStorage
  303.     (LPOLESTREAM                lpolestream,
  304.     LPSTORAGE                   pstg,
  305.     const DVTARGETDEVICE FAR*   ptd);
  306.  
  307. WINOLEAPI OleConvertIStorageToOLESTREAM
  308.     (LPSTORAGE      pstg,
  309.     LPOLESTREAM     lpolestream);
  310.  
  311.  
  312. /* Storage Utility APIs */
  313. WINOLEAPI GetHGlobalFromILockBytes (LPLOCKBYTES plkbyt, HGLOBAL FAR* phglobal);
  314. WINOLEAPI CreateILockBytesOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
  315.                                     LPLOCKBYTES FAR* pplkbyt);
  316.  
  317. WINOLEAPI GetHGlobalFromStream (LPSTREAM pstm, HGLOBAL FAR* phglobal);
  318. WINOLEAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease,
  319.                                 LPSTREAM FAR* ppstm);
  320.  
  321.  
  322. /* ConvertTo APIS */
  323.  
  324. WINOLEAPI OleDoAutoConvert(LPSTORAGE pStg, LPCLSID pClsidNew);
  325. WINOLEAPI OleGetAutoConvert(REFCLSID clsidOld, LPCLSID pClsidNew);
  326. WINOLEAPI OleSetAutoConvert(REFCLSID clsidOld, REFCLSID clsidNew);
  327. WINOLEAPI GetConvertStg(LPSTORAGE pStg);
  328. WINOLEAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert);
  329.  
  330.  
  331. WINOLEAPI OleConvertIStorageToOLESTREAMEx
  332.     (LPSTORAGE          pstg,
  333.                                     // Presentation data to OLESTREAM
  334.      CLIPFORMAT         cfFormat,   //      format
  335.      LONG               lWidth,     //      width
  336.      LONG               lHeight,    //      height
  337.      DWORD              dwSize,     //      size in bytes
  338.      LPSTGMEDIUM        pmedium,    //      bits
  339.      LPOLESTREAM        polestm);
  340.  
  341. WINOLEAPI OleConvertOLESTREAMToIStorageEx
  342.     (LPOLESTREAM        polestm,
  343.      LPSTORAGE          pstg,
  344.                                     // Presentation data from OLESTREAM
  345.      CLIPFORMAT FAR*    pcfFormat,  //      format
  346.      LONG FAR*          plwWidth,   //      width
  347.      LONG FAR*          plHeight,   //      height
  348.      DWORD FAR*         pdwSize,    //      size in bytes
  349.      LPSTGMEDIUM        pmedium);   //      bits
  350.  
  351. #ifndef RC_INVOKED
  352.  
  353. #include <poppack.h>
  354.  
  355. #endif // RC_INVOKED
  356.  
  357. #pragma option pop
  358. #endif     // __OLE2_H__
  359.